#ifndef AGENT_GROUP_H
#define AGENT_GROUP_H

#include "Agent.h"

namespace Engine
{
	
	typedef std::map <unsigned int, Agent*> AgentMap;

	class AgentGroup
	{
		protected:
			AgentMap m_agents;

		public:
			virtual ~AgentGroup(){}
			void AddAgent(Agent* a);
			void RemoveAgent(Agent* a);

			void GetNeighboursInRange(Agent* agent, float radiusSqr, Agents* neighbours) const;
			AgentMap& GetNeighbours() {return m_agents;}
			Agent* GetNearestNeighbour(Agent* agent);
	};
}

#endif